本文记录了在 三台服务器环境下 部署 Zookeeper 集群 与 Kafka 集群 的完整过程。
目标是让 Kafka 通过 Zookeeper 协调,同时支持自动创建 Topic。
🧱 一、集群规划
| 服务类型 | 节点 | IP 地址 | 安装路径 |
|---|---|---|---|
| Zookeeper | zk1 | 10.5.51.156 | /usr/local/zookeeper |
| Zookeeper | zk2 | 10.5.51.157 | /usr/local/zookeeper |
| Zookeeper | zk3 | 10.5.51.159 | /usr/local/zookeeper |
| Kafka | broker1 | 10.5.51.156 | /usr/local/kafka |
| Kafka | broker2 | 10.5.51.157 | /usr/local/kafka |
| Kafka | broker3 | 10.5.51.159 | /usr/local/kafka |
⚙️ 二、部署 Zookeeper 集群
1️⃣ 下载与解压
cd /usr/local
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin zookeeper
2️⃣ 创建数据与日志目录
mkdir -p /usr/local/zookeeper/data
mkdir -p /usr/local/zookeeper/logs
3️⃣ 配置 zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
server.1=10.5.51.156:2888:3888
server.2=10.5.51.157:2888:3888
server.3=10.5.51.159:2888:3888
4️⃣ 设置每台机器的 myid
# zk1
echo 1 > /usr/local/zookeeper/data/myid
# zk2
echo 2 > /usr/local/zookeeper/data/myid
# zk3
echo 3 > /usr/local/zookeeper/data/myid
5️⃣ 启动与验证
/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/zookeeper/bin/zkServer.sh status
输出示例:
Mode: leader
Mode: follower
Mode: follower
✅ 至少有一个为 Leader,即集群运行正常。